1. The Field of the Invention
The present invention relates to computer networks, and more specifically, to distributing membership information for multi-party application layer sessions.
2. Background and Relevant Art
Computer networks have enhanced our ability to communicate and access information by allowing one computer or device (hereinafter both referred to as a “computing system”) to communicate over a network with another computing system using electronic messages. When transferring an electronic message between computing systems, the electronic message will often pass through a protocol stack that performs operations on the data within the electronic message (e.g., packetizing, routing, flow control). The Open System Interconnect (“OSI”) model is an example of a networking framework for implementing a protocol stack.
The OSI model breaks down the operations for transferring an electronic message into seven distinct “layers,” each designated to perform certain operations in the data transfer process. While protocol stacks can potentially implement each of the layers, many protocol stacks implement only selective layers for use in transferring data across a network. When data is transmitted from a computing system, it originates at the application layer and is passed down to intermediate lower layers and then onto a network. When data is received from a network it enters the physical layer and is passed up to higher intermediate layers and then eventually received at the application layer. The application layer, the upper most layer, is responsible for supporting applications and end-user processes, such as, for example, electronic conferencing software.
The functionality of lower layers of a protocol stack is typically abstracted from the application layer. That is, application data is transferred to and from an application layer through the lower layers without exposing the functionality of the lower layers to the application layer. Abstraction can make it appear to a number of application layer processes at different computing systems that the application layer processes are directly connected to one another (when in fact lower layers in corresponding protocol stacks process data as the data transferred between the application layer processes). Accordingly, communication between two application layer processes can be viewed as a logical connection regardless of the underlying physical network that facilitates the communication.
Often, when computing systems are to communicate with each other, the computing systems will first establish a communication session. This can include application layer processes at a number of different computing systems establishing a multi-party application layer session, such as, for example, a multi-party conferencing session. To establish a multi-party conferencing session, conferencing applications at each of the computing systems logically connect to one another. The logical connections typically result in the computing systems being configured in a logical hierarchy, such as, for example, of a T.120 conferencing session.
The logically connected conferencing applications then select a controlling computing system as the root of the logical hierarchy. Other computing systems in the logical hierarchy can be leaf computing systems (computing systems with no other computing systems below them in the logical hierarchy) or intermediate computing systems (computing systems somewhere between the root computer system and a leaf computing system in the logical hierarchy). The controlling computing system facilitates the transfer of conferencing data between the other computing systems in the logical hierarchy. Each intermediate and leaf computing system maintains link information (associated with a logical connections) for sending conferencing data to and receiving conferencing data from the root computing system. Likewise, the controlling computing system maintains link information for sending conferencing data to and receiving conferencing data from each intermediate and leaf computing system.
Typically, conferencing data originates at an intermediate or leaf computing system in one branch of the logical hierarchy. The intermediate or leaf computing system transfers the conferencing data up the logical hierarchy to the controlling computing system. The controlling computing system then transfers the conferencing data down the logical hierarchy to all the intermediate and leaf computing systems in the logical hierarchy. Accordingly, during a typical conferencing session, all conferencing data flows through the controlling computing system.
However, an intermediate or leaf computing system in one branch of the logical hierarchy does not typically communicate directly with intermediate or leaf computing systems in any other branch of the logical hierarchy. Accordingly, there is little, if any, need for intermediate and leaf computing systems in one branch of the logical hierarchy to maintain link information for intermediate and leaf computing systems in other branches of the logical hierarchy. Since all conferencing data flows through the controlling computing system, failure of an intermediate or leaf computing system does not impact the transfer of conferencing data to computing systems outside the corresponding branch that includes the failing computing system. Accordingly, conferencing data can still be transferred to computing systems in other branches when an intermediate or leaf computing system fails.
Unfortunately in a logical hierarchy, failure of a controlling root computing system can have a significant detrimental impact on the transfer of conferencing data for a multi-party conferencing session. When a controlling root computing system fails, other computing systems in the logical hierarchy transition into election mode. During election mode, transfer of conferencing data is suspended, while the other computing systems attempt to elect a new controlling root computing system.
The election algorithms typically implemented to elect a new root controlling computing system can be quite complex and take on the order of a few seconds to complete. Since no data is transferred during election mode, the user experience is significantly degraded during execution of election algorithms. It may also be that the other computing systems do not initially agree on the computing system that should be elected as the root controlling computing system. Thus, election algorithms may be executed a number of times, continuing until appropriate electron results are achieved. This can lengthen the election process and further degrade the user experience. Further, it may be that appropriate election results are not achieved (i.e., election algorithms fail to automatically elect a new controlling computing system). Accordingly, the expertise of a system administrator may be required to reset the multi-party conferencing session and/or select a new controlling root computing system.
Additional computing systems may also be preventing from joining a multi-party conferencing session when the computing systems of the multi-party conferencing session are in election mode. A user a computing system attempting to join the multi-party conferencing session during election mode may be given a false indication that the multi-party conferencing session does not exist. This can result in the user terminating further efforts to connect to the multi-party conferencing session even though the multi-party conferencing session is established and conferencing data may (once a new controlling root computing system is elected) subsequently continue to be transferred. Therefore systems, methods, computer program products, and data structures for distributing membership information for multi-party application layer sessions would be advantageous.